package com.hexacta.hrs.service.staffing;

import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.vectrics.employee.Employee;

import com.hexacta.hrs.domain.staffing.Project;
import com.hexacta.hrs.domain.staffing.Requirement;
import com.hexacta.hrs.services.crud.CrudService;

public interface ProjectService extends CrudService<Project> {
	public List<Project> findAll();

	public List<Requirement> findAllRequirements();

	public Set<Requirement> findRequirements(long projectId,
			Date selectedFromDate, Date selectedToDate,
			Collection<String> selectedRoles);
	
	public List<Employee> findRequirementResults(Requirement requirement);
	
	public List<Project> searchProjects(Map<String, Object> filters);

	public Project searchByName(String name);
}
